#region Imported Namespaces
using System;

using BO = PHSRAG.Insight21.BusinessObjects;
using ICachePolicy = PHSRAG.Insight21.Policy.ICachePolicy;
#endregion

namespace PHSRAG.Insight21.Agreements
{
	#region Class ExpenseDetail
	/// <summary>
	/// The ExpenseDetail class is the facade over the details for a month's worth of expense details.
	/// </summary>
	public class ExpenseDetail : BO.BusinessObject
	{
		#region Constants
		private const string ExpenseDetailKey = "ExpenseDetail_0CBC50FF-2102-4cbc-9C01-54276F10E60B";
		#endregion

		#region Instance Variables
		#endregion

		#region Class Methods
		#endregion

		#region Constructor
		/// <summary>
		/// Initilize the base class with the specified cache policy.
		/// </summary>
		/// <param name="cachePolicy"></param>
		public ExpenseDetail(ICachePolicy cachePolicy) : base(cachePolicy)
		{
		}
		#endregion

		#region Public Properties
		#endregion

		#region BusinessObject Methods
		/// <summary>
		/// Cache the current instance using the prevalent cache policy.
		/// </summary>
		public override void Cache()
		{
			CachePolicy.Cache(ExpenseDetailKey, this);
		}
		
		/// <summary>
		/// Load the current instance with a month of expense detail information for the current user.
		/// </summary>
		/// <param name="connectionString"></param>
		/// <param name="args"></param>
		public override void Load(string connectionString, params object[] args)
		{
		}
		
		/// <summary>
		/// Remove the current instance from the cache using the prevalent cache policy.
		/// </summary>
		public override void UnCache()
		{
			CachePolicy.UnCache(ExpenseDetailKey);
		}
		#endregion

		#region Public Methods
		#endregion

		#region Private Methods
		#endregion
	}
	#endregion
}
